public class Test {
    public static int fx(){
        return ((int)Math.random()*6); //假设一个函数是提供0-6等概率出现，让你用这个函数建立1-7等概率（想问一下为啥不直接加1）？
    }
    public static int fx2(){  //使得小于3的为0，使得大于3的为1,最后使得0，1出现的概率相等
        int ans = 0;
        do{
            ans = fx();

        }while(ans==3);

        return ans<3?0:1;
    }

    public static int fx3(){

        int anx = 0;
        do{
            anx= (fx2()<<2)+(fx2()<<1)+(fx2()<<0);

        }while (anx==0);
        return anx;
    }

    public static void main(String[] args) {
        int array[] = new int[7];
        for (int i = 0; i <1000_0000 ; i++) {
            array[fx3()-1]++;
        }
        for (int i = 0; i < 7; i++) {
            System.out.println("i元素出现了："+array[i]);
        }
    }

}

